@@ -11,7 +11,8 @@ from TimeConvert import TimeConvert as tc |
||
| 11 | 11 |
|
| 12 | 12 |
from utils.error.errno_utils import GroupUserStatusCode |
| 13 | 13 |
from utils.error.response_utils import response |
| 14 |
-from utils.redis.rkeys import TOUR_GUIDE_GROUP_CUR_SESSION, TOUR_GUIDE_GROUP_GEO_INFO, TOUR_GUIDE_GROUP_USER_GEO_LIST |
|
| 14 |
+from utils.redis.rkeys import (TOUR_GUIDE_GROUP_CUR_SESSION, TOUR_GUIDE_GROUP_GEO_INFO, TOUR_GUIDE_GROUP_GEO_SUBMIT_DT, |
|
| 15 |
+ TOUR_GUIDE_GROUP_USER_GEO_LIST) |
|
| 15 | 16 |
from utils.redis.rtouruser import get_tour_user_belong_group |
| 16 | 17 |
|
| 17 | 18 |
|
@@ -30,6 +31,7 @@ def geo_submit_api(request): |
||
| 30 | 31 |
return response(GroupUserStatusCode.USER_HAS_NOT_JOIN_GROUP) |
| 31 | 32 |
|
| 32 | 33 |
r.geoadd(TOUR_GUIDE_GROUP_GEO_INFO % group_id, longitude, latitude, user_id) |
| 34 |
+ r.hset(TOUR_GUIDE_GROUP_GEO_SUBMIT_DT % group_id, user_id, tc.utc_string(format='%Y-%m-%dT%H:%M:%SZ')) |
|
| 33 | 35 |
|
| 34 | 36 |
session_id = r.get(TOUR_GUIDE_GROUP_CUR_SESSION % group_id) |
| 35 | 37 |
r.rpush(TOUR_GUIDE_GROUP_USER_GEO_LIST % (group_id, session_id, user_id), json.dumps({
|
@@ -16,7 +16,8 @@ from group.models import GroupInfo, GroupUserInfo |
||
| 16 | 16 |
from utils.error.errno_utils import GroupStatusCode, GroupUserStatusCode, TokenStatusCode, UserStatusCode |
| 17 | 17 |
from utils.error.response_utils import response |
| 18 | 18 |
from utils.redis.rgroup import get_group_info, get_group_users_info, set_group_info, set_group_users_info |
| 19 |
-from utils.redis.rkeys import TOUR_GUIDE_GROUP_CUR_GATHER_INFO, TOUR_GUIDE_GROUP_CUR_SESSION |
|
| 19 |
+from utils.redis.rkeys import (TOUR_GUIDE_GROUP_CUR_GATHER_INFO, TOUR_GUIDE_GROUP_CUR_SESSION, |
|
| 20 |
+ TOUR_GUIDE_GROUP_GEO_SUBMIT_DT) |
|
| 20 | 21 |
from utils.redis.rtourguide import get_tour_guide_own_group, set_tour_guide_own_group |
| 21 | 22 |
from utils.redis.rtouruser import get_tour_user_belong_group |
| 22 | 23 |
from utils.storage_utils import file_save |
@@ -101,15 +102,26 @@ def tg_group_create_api(request): |
||
| 101 | 102 |
}) |
| 102 | 103 |
|
| 103 | 104 |
|
| 105 |
+def set_geo_submit_flag(uinfo, geo_dt): |
|
| 106 |
+ uinfo['geo_submited'] = False |
|
| 107 |
+ if geo_dt: |
|
| 108 |
+ pass |
|
| 109 |
+ return uinfo |
|
| 110 |
+ |
|
| 111 |
+ |
|
| 104 | 112 |
@logit |
| 105 | 113 |
def tg_group_detail_api(request): |
| 106 | 114 |
""" 旅行团详情 """ |
| 107 | 115 |
group_id = request.POST.get('group_id', '')
|
| 108 | 116 |
user_id = request.POST.get('user_id', '')
|
| 109 | 117 |
|
| 118 |
+ geo_dts = r.hgetall(TOUR_GUIDE_GROUP_GEO_SUBMIT_DT % group_id) |
|
| 119 |
+ |
|
| 110 | 120 |
group_users_info = get_group_users_info(group_id, user_id) |
| 111 | 121 |
# Remove tourguide |
| 112 |
- group_passed_users = [user for user in group_users_info['passed'] if not user['subadmin']] |
|
| 122 |
+ group_passed_users = [uinfo for uinfo in group_users_info['passed'] if not uinfo['subadmin']] |
|
| 123 |
+ # GEO Submited Flag |
|
| 124 |
+ group_passed_users = [set_geo_submit_flag(uinfo, geo_dts.get(uinfo['user_id'], '')) for uinfo in group_passed_users] |
|
| 113 | 125 |
group_users_info['passed'] = group_passed_users |
| 114 | 126 |
# Update passed count |
| 115 | 127 |
group_users_info['passed_count'] = len(group_passed_users) |
@@ -8,6 +8,7 @@ PROFILE_INFO = 'profile:info:%s' # STRING,用户信息,user_id |
||
| 8 | 8 |
|
| 9 | 9 |
# 导游相关 |
| 10 | 10 |
TOUR_GUIDE_GROUP_GEO_INFO = 'tour:guide:group:geo:info:%s' # ZSET,旅游团地理位置信息,group_id |
| 11 |
+TOUR_GUIDE_GROUP_GEO_SUBMIT_DT = 'tour:guide:group:geo:submit:dt:%s' # ZSET,旅游团地理位置最后上传时间,group_id |
|
| 11 | 12 |
TOUR_GUIDE_GROUP_CUR_SESSION = 'tour:guide:group:cur:session:%s' # STRING,旅游团当前Session,group_id,导游设置集合时间的时候更新 |
| 12 | 13 |
TOUR_GUIDE_GROUP_CUR_GATHER_INFO = 'tour:guide:group:cur:gather:info:%s' # STRING,旅游团当前Session,group_id,导游设置集合时间的时候更新 |
| 13 | 14 |
TOUR_GUIDE_GROUP_USER_GEO_LIST = 'tour:guide:group:user:geo:list:%s:%s:%s' # LIST,旅游团当前用户地理位置列表,group_id、session_id、user_id |